package main;

import algo_lignes_sites.ihm.MainFrameTraitementLigneSite;
import commons.UsageCheck;
import commons.errors.ErrorsHandler;
import commons.params_appli.ParamsAppli;
import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.filechooser.FileNameExtensionFilter;


public class MainClass_ls {
	
	public MainClass_ls() {
	}

	// Fenetre principale de l'application
	static MainFrameTraitementLigneSite mainFrame;
	
	
	public static void main(String args[]) throws IOException {
		boolean bTest = false;
		
		// ne fonctionne pas bien avec proxy
//		if (!UsageCheck.canUseAutogene("2014-12-31 23:59:59")) {
//			System.exit(0);
//		}
		
		if (!ParamsAppli.canLaunchLigneSite) {
			JOptionPane.showMessageDialog(null, "Cette version d'Autogene ne peut traiter les lignes/sites");
			System.exit(0);
		}

		try {

			// Look and Feel standard de windows
			//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

			// Fichier ini
			String fichierINI = null;
			if (args.length == 1 && args[0].endsWith(".ini") && new File(args[0]).exists())
				fichierINI = args[0];
			else {
				JFileChooser jfc = new JFileChooser();
				jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
				jfc.setFileFilter(new FileNameExtensionFilter("Fichier INI","ini"));
				int returnVal = jfc.showDialog(null, "Selectionnez le fichier INI");
				if (returnVal == JFileChooser.APPROVE_OPTION)
					fichierINI = jfc.getSelectedFile().getPath();
				else
					// Annulation par l'utilisateur
					return;
			}
			System.out.println("Fichier INI : " + fichierINI);

			ParamsAppli paramsAppli = new ParamsAppli();
			paramsAppli.init(new File(fichierINI));

			
			// METHODE LANCEMENT DEPUIS NETBEANS
			//  le fichier ini se trouve dans le sous-rep de ressource
			
//				// METHODE LANCEMENT DEPUIS NETBEANS
//				//  le fihcier ini se trouve dans le sous-rep de ressource
//				URL url = Thread.currentThread().getContextClassLoader().getResource("res/paramsAutoGene.ini");
//				System.out.println(new File(url.toURI()).exists());
//
//				ParamsAppli paramsAppli = new ParamsAppli();
//				paramsAppli.init(new File(url.toURI()));

			if (ErrorsHandler.isThereErrors()) {
				ErrorsHandler.addError("Impossible de lancer AutoGene");
				ErrorsHandler.showErrors();
				return;
			}

			java.awt.EventQueue.invokeLater(new Runnable() {
				@Override
				public void run() {
					new MainFrameTraitementLigneSite().setVisible(true);
				}
			});

		}

		catch (Exception ex) {
			System.out.println(ex.getMessage());
			ex.printStackTrace();
		}
	}


}
